Publisher: 2K Games
BioShock is one of the best games to be released so far this year and is a ‘genetically enhanced’ first person shooter set in an underwater city called Rapture. The city was created at the bottom of the Atlantic Ocean by a man named Andrew Ryan as part of an ideological dream and is focused around a beautifully crafted 1930’s art-deco style.
2K Boston and 2K Australia have licensed and used Epic Games’ Unreal Engine 3 to great effect and have incorporated several DirectX 10 effects. These are all controlled via the ‘DirectX 10 Detail Surfaces’ option in the game’s graphics control panel.
As the game is based entirely under water, the developer has made great use of water shaders and, from what we have been told by 2K Games, there were two artists that worked only on making the water look truly stunning. The developers have used DirectX 10 to improve the water ripples when characters move through the water and there is massive use of pixel shaders to create wet-looking objects and surfaces.
Additionally, the DX10 version of the game uses the back depth buffer in order to create ‘soft’ particle effects; this is where the particle effects interact with their surroundings and overall look more realistic. There are other improvements to the game’s engine too – the developers have used DirectX 10’s DCF + texel offsets to improve shadow map filtering, which results in better-defined shadow edges.
As there is no in-built benchmarking utility, we have used FRAPS to record framerate over the course of three 90 second manual runthroughs in the
Neptune's Bounty level. We averaged the three average frame rates recorded by FRAPS, but reported the median low framerate instead of the average in order to weed out the outliers. We set the image quality slider to ‘high’, leaving global lighting and Vsync disabled. Anisotropic filtering was set to 16x in the game’s configuration files and, currently, Unreal Engine 3 does not support anti-aliasing under DirectX 10 mode. However, Nvidia has got anti-aliasing working under DirectX 9.0 and we've tested with anti-aliasing in our DX9 tests.
DirectX 9.0
-
Nvidia GeForce 8800 Ultra 768MB 3xSLI
-
Nvidia GeForce 8800 Ultra 768MB SLI
-
Nvidia GeForce 8800 Ultra 768MB
0
10
20
30
40
50
60
70
80
90
Frames Per Second
-
Nvidia GeForce 8800 Ultra 768MB 3xSLI
-
Nvidia GeForce 8800 Ultra 768MB SLI
-
Nvidia GeForce 8800 Ultra 768MB
0
10
20
30
40
50
60
70
80
Frames Per Second
Again, with
BioShock, it’s probably worth breaking it down into DirectX 9.0 and DirectX 10 performance. The reason why is because, with the game running in DirectX 9.0 mode (using the –dx9 command line parameter on the shortcut), Nvidia’s drivers enable support for anti-aliasing in this title and others based on Unreal Engine 3. In DirectX 10 mode however, there is no anti-aliasing support just yet but Nvidia says that it is still working to enable it – it makes sense when you think about it, because there are many, many games harnessing the power of Unreal Engine 3.
At 1920x1200 we found that, even with 8xMSAA (that’s 8xQ AA in Nvidia speak) forced in the control panel, scaling wasn’t quite as good as it could be. There were clear benefits to owning a second GPU, as it took a frame rate of below 40 frames per second and converted it into one that was well above 60 frames per second. Meanwhile, when we added a third GPU into the fray, it increased the average frame rate by 20 frames per second and the minimum increased by just three frames per second.
Because of a shortness of time, I didn’t have time to test scaling performance at 16xCSAA or 16xQ AA at this resolution, but this is an example where the frame rates were already high enough with two GPUs running in SLI. So, we went higher...
At 2560x1600 4xAA, we saw better scaling, but again the problem for 3-way SLI is that the frame rate with two GeForce 8800 Ultra cards in SLI is almost 60 frames per second to start with, while the minimum frame rate was a fairly healthy 24 fps. On the other hand, 3-way SLI increased the average to over 80 frames per second while the minimum increased to 28 frames per second. This was a slightly smoother experience, but it wasn’t as if dual-GPU performance was sluggish.
This time, we did try and go higher, going straight to 8xQ AA. At this setting, it was very choppy, even on 3-way SLI, with frequent pauses lasting more than a second at times. We then tried Nvidia’s lower-quality 8xCSAA mode and performance was pretty impressive at around 75 fps average and a 19 fps minimum. Admittedly, the minimum induced the occasional bit of choppiness, but it was very playable, unlike 8xMSAA.
DirectX 10
-
Nvidia GeForce 8800 Ultra 768MB 3xSLI
-
Nvidia GeForce 8800 Ultra 768MB SLI
-
Nvidia GeForce 8800 Ultra 768MB
Frames Per Second
-
Nvidia GeForce 8800 Ultra 768MB 3xSLI
-
Nvidia GeForce 8800 Ultra 768MB SLI
-
Nvidia GeForce 8800 Ultra 768MB
0
10
20
30
40
50
60
70
80
90
Frames Per Second
The problem with
BioShock under DirectX 10 is not its performance, it’s actually the game’s inability to take advantage of anti-aliasing (at least, on Nvidia hardware). That’s also the downfall with 3-way SLI in DirectX 10
BioShock, because there isn’t enough load to really take advantage of two GPUs properly at 1920x1200. As a result, there’s no scaling at this resolution, even though you’ll get a minimum frame rate of above 60 frames per second.
At 2560x1600 though, there is some scaling, but again it’s at frame rates where it’s really not going to make much difference to the gameplay experience. A 90 frames per second average when combined with a 62 fps minimum is certainly compelling, but it’s not as if a 72 frames per second average and 46 fps minimum aren’t smooth enough – when you move to 3-way SLI in DirectX 10
BioShock, it’s all a question of semantics... Yes, the frame rates are higher at 2560x1600, but are you going to be able to benefit from that increased frame rate? No, I don’t think you are.
What it comes down to is the fact that
BioShock doesn’t support anti-aliasing and neither Nvidia or ATI has so far been able to get it working under the more compelling DirectX 10 mode. If Nvidia could get anti-aliasing working on Unreal Engine 3 games using DirectX 10, I’m sure there would be some benefit to 3-way SLI in this game, but at the moment there sadly isn’t.
Want to comment? Please log in.